import request from '@/utils/request'

// 获取设备分页列表
export function getpointPageApi(params: any) {
    return request({
        url: '/ems/pointYk/selectPage',
        method: 'get',
        params
    })
}
// 获取设备列表
export function getpointListApi(params: any) {
    return request({
        url: '/ems/pointYk/list',
        method: 'get',
        params
    })
}
// 新增设备列表
export function addpointApi(data: any) {
    return request({
        url: '/ems/pointYk/add',
        method: 'post',
        data
    })
}
// 更新设备列表
export function updatepointApi(data: any) {
    return request({
        url: '/ems/pointYk/update',
        method: 'put',
        data
    })
}
// 删除设备列表
export function delpointApi(id: any) {
    return request({
        url: `/ems/pointYk/del/${id}`,
        method: 'delete',
    })
}

// 上传CSV文件
export function uploadPointCsvApi(file: File, gatewayId: number | string, deleteBeforeUpload: boolean = false) {
    const formData = new FormData();

    // 2. 传递 CSV 文件（key 必须为 "file"，与后端 @RequestParam("file") 对应）
    formData.append('file', file);

    // 3. 传递 gatewayId（key 必须为 "gatewayId"，与后端 @RequestParam("gatewayId") 对应）
    // 注意：FormData  append 时，数字会自动转为字符串，后端可正常解析为 Long
    formData.append('gatewayId', gatewayId.toString());

    // 4. 传递是否先删除已有数据的标志
    formData.append('deleteBeforeUpload', deleteBeforeUpload.toString());

    return request({
        url: '/ems/pointYk/uploadCsv',
        method: 'post',
        data: formData,
        headers: {
            'Content-Type': 'multipart/form-data' // 上传文件必须用该类型，Axios 可自动识别，也可显式指定
        },
        timeout: 30000 // 30秒超时，应对大文件解析
    });
}
